package com.darthsith.bolloauto.model;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import com.darthsith.bolloauto.util.Constants;

public class Pagamento implements Constants, Serializable {
	
	private static final long serialVersionUID = -2442087577915775316L;
	private String riduzione;
	private String terminePagamento;
	private String scadenza;
	private String validita;
	private String tassaDovuta;
	private String interessi;
	private String sanzioni;
	private String totale;
	private Map<String, String> map;
	
	public Pagamento() {
		setMap(new HashMap<String, String>());
	}
	
	public Pagamento(Map<String, String> map) {
		if (map!=null) {
			setMap(map);
			valorize();
		}
		else
			new Pagamento();
	}
	
	public String getRiduzione() {
		return riduzione;
	}
	public void setRiduzione(String riduzione) {
		this.riduzione = riduzione;
		map.put(RIDUZIONE, riduzione);
	}
	public String getTerminePagamento() {
		return terminePagamento;
	}
	public void setTerminePagamento(String terminePagamento) {
		this.terminePagamento = terminePagamento;
		map.put(TERMINE_PAGAMENTO, terminePagamento);
	}
	public String getScadenza() {
		return scadenza;
	}
	public void setScadenza(String scadenza) {
		this.scadenza = scadenza;
		map.put(SCADENZA, scadenza);
	}
	public String getValidita() {
		return validita;
	}
	public void setValidita(String validita) {
		this.validita = validita;
		map.put(VALIDITA, validita);
	}
	public String getTassaDovuta() {
		return tassaDovuta;
	}
	public void setTassaDovuta(String tassaDovuta) {
		this.tassaDovuta = tassaDovuta;
		map.put(TASSA_DOVUTA, tassaDovuta);
	}
	public String getInteressi() {
		return interessi;
	}
	public void setInteressi(String interessi) {
		this.interessi = interessi;
		map.put(INTERESSI, interessi);
	}
	public String getSanzioni() {
		return sanzioni;
	}
	public void setSanzioni(String sanzioni) {
		this.sanzioni = sanzioni;
		map.put(SANZIONI, sanzioni);
	}
	public String getTotale() {
		return totale;
	}
	public void setTotale(String totale) {
		this.totale = totale;
		map.put(TOTALE, totale);
	}
	public void setMap(Map<String, String> map) {
		this.map = map;
	}
	public Map<String, String> getMap() {
		return map;
	}
	
	private void valorize() {
		setInteressi(map.get(INTERESSI));
		setRiduzione(map.get(RIDUZIONE));
		setSanzioni(map.get(SANZIONI));
		setScadenza(map.get(SCADENZA));
		setTassaDovuta(map.get(TASSA_DOVUTA));
		setTerminePagamento(map.get(TERMINE_PAGAMENTO));
		setTotale(map.get(TOTALE));
		setValidita(map.get(VALIDITA));
	}

	@Override
	public String toString() {
		return "Pagamento [interessi=" + interessi + ", riduzione=" + riduzione
				+ ", sanzioni=" + sanzioni + ", scadenza=" + scadenza
				+ ", tassaDovuta=" + tassaDovuta + ", terminePagamento="
				+ terminePagamento + ", totale=" + totale + ", validita="
				+ validita + "]";
	}

}
